<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2019/3/18
 * Time: 16:39
 */

namespace app\home\controller;


use think\Controller;
//微信授权登陆
class Wxlogin extends Controller
{
   public  $Appid='wx48593a544c9109e9';  //微信Appid
   public  $AppSecret='7135e42c07988a663ce4a745baf5baec';//微信Secret
    /**
     * //获取微信access_token
     */
    public function wx_access_token()
    {

        $url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$this->Appid}&secret={$this->AppSecret}";
        if (session('access_token')==null){//没有缓存，去请求
            $data=file_get_contents($url);
            $data=json_decode($data,true);
            if (isset($data['access_token'])){//请求成功，缓存access_token
                session('access_token',$data['access_token']);
            }
        }
        return session('access_token');
    }
    /*
     * 获取微信用户基本信息--第一步
     * 让微信用户选择是否允许采集信息（询问用户页面）
     * 用户同意授权，获取code
     */
    public function wx_user_code()
    {
//        dump($Appid);
//        dump($this->Appid);
        $redirect_uri="http%3A%2F%2Fteashop.obay.vip%2fHome%2fwxlogin%2fwx_user_data";//用户同意后去的页面（http://teashop.obay.vip/Home/wxlogin/wx_user_data）
        $url="https://open.weixin.qq.com/connect/oauth2/authorize?appid={$this->Appid}&redirect_uri={$redirect_uri}&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect";
        $this->redirect($url);
//     $data=   file_get_contents();
    }
    /*
     *
     *
     *  input('get.code')
     * code说明 ： code作为换取access_token的票据，每次用户授权带上的code将不一样，code只能使用一次，5分钟未被使用自动过期。
     */
    public function wx_user_data()
    {
        $getData=input('get.');
        //$getData['code']用户code
        //获取微信用户基本信息第二步--通过code换取网页授权access_token(访问令牌)
        $url="https://api.weixin.qq.com/sns/oauth2/access_token?appid={$this->Appid}&secret={$this->AppSecret}&code={$getData['code']}&grant_type=authorization_code";
        $data=file_get_contents($url);
        $data=json_decode($data,true);//转换数组
        //获取微信用户基本信息第三步--判断是否需要刷新access_token（这里不刷新）
        //获取微信用户基本信息第四步--拉取用户信息(需scope为 snsapi_userinfo)
        $url_data="https://api.weixin.qq.com/sns/userinfo?access_token={$data['access_token']}&openid={$data['openid']}&lang=zh_CN";
        $data=file_get_contents($url_data);
        $data=json_decode($data,true);//转换数组

        //以下为项目逻辑
        dump($data);

    }
    public function index()
    {
        $getData=input('get.');
        dump($getData);
        dump('获取信息后的页面');
    }
    /**
     * @param $url   接口连接的地址
     * @return mixed
     *  转接接口的方法
     */
    public function curl($url){
        $ch = curl_init();
        //设置选项，包括URL
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_HEADER, 0);

        //执行并获取HTML文档内容
        $output = curl_exec($ch);

        //释放curl句柄
        curl_close($ch);

        $data=json_decode($output,true);//$data就是最终的数据 而且已经转换成了数组
        return $data;
    }
}